package personal.leil.learning.lexicographicalorder;

import java.util.Arrays;

/**
 * 求解最小的字典序
 * <p>
 * 给定一个字符串类型的数组strArr，找到一种拼接方式，
 * 使得把所有字符串拼起来之后形成的字符串具有最小的字典序。
 * </p>
 *
 * @author Leil
 * @version 1.0
 * @since 2024/1/26
 */
public class LexicographicalOrder {

    public static String[] process(String[] strArr) {
        Arrays.sort(strArr, (o1, o2) -> (o1 + o2).compareTo(o2 + o1));
        return strArr;
    }

    /************** For Test *********************/
    public static void main(String[] args) {
        String[] strArr = new String[]{
                "dce",
                "abcd",
                "aaa",
                "kjf",
                "hjs"
        };
        String[] arrAfterProcess = process(strArr);
        Arrays.stream(arrAfterProcess).forEach(System.out::println);
    }

}
